/*
  dart 运算符
 */

void main() {
  int a = 13;
  int b = 5;

  print(a + b); //加  18
  print(a - b); //减  8
  print(a * b); //乘  65
  print(a / b); //除  2.6
  print(a % b); //其余  3
  print(a ~/ b); //取整 2

  // c??=23;   表示如果 b 为空的话就把 23 赋值给 b

  // int c1;
  // c1 ??= 23;
  // print(c1);

  // 复合运算符
  var d = 12;
  d += 10; //表示 d = d + 10
  print(d);

  //  ??运算 如果 demo1 为空 demo2 赋值为 10  否则 为demo1
  // var demo1;
  // var demo2 = demo1 ?? 10;
  // print(demo2);

  // 类型转换
  // Number =>  String   toString()
  // String =>  Number   int.parse()
  String str1 = '123'; //123.1   double
  var myNum = int.parse(str1);
  print(myNum is int);

  //报错处理
  String str3 = "";
  try {
    var myNum2 = double.parse(str3);
    print(myNum2);
    print(myNum2 is double);
  } catch (err) {
    print(0);
  }

  //其他类型转化
  // isEmpty：判断字符串是否为空

  String str10 = '';
  if (str10.isEmpty) {
    print('空');
  }

  int num10 = 0;
  if (num10 == 0) {
    print('0');
  }

  var myNum4 = 0 / 0;
  if (myNum4.isNaN) {
    print('NaN~');
  }
}

/*
  运算符
    算数运算符
    + - * / ~/(取整)  %(取余)

    关系运算符
    == ！= >  <  >=  <=

    逻辑运算符
    ！  &&  ||

    赋值运算符
      基础赋值运算符  =    ??=
      复合赋值运算符   +=    -=    *=    /=    %=     ~/=

    条件表达式
      if  else  switch case

 */
